package com.zhi.service;

import java.util.List;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import com.zhi.entity.User;

public interface UserService {

	/**
	 * 获得用户列表
	 * @return
	 */
	public List<User> getEntityList();

	/**
	 * 获得用户列表及编码对应的值
	 * @return
	 */
	public List<Object[]> getEntityListWithCodeName();

	/**
	 * 获得用户列表及编码对应的值，并分页
	 * @param pageable
	 * @return
	 */
	public Page<User> getEntityListWithCodeName(Pageable pageable);

	/**
	 * 根据主键id获得用户
	 * @param id
	 * @return
	 */
	public User getOne(Integer id);

	/**
	 * 根据user中的值查找所有满足条件的user的集合
	 * @param user
	 * @return
	 */
	public List<User> findAll(User user);

	/**
	 * 保存user对象
	 * @param user
	 */
	public void save(User user);

	/**
	 * 更新user对象
	 * @param user
	 */
	public void edit(User user);

	/**
	 * 根据id删除
	 * @param id
	 */
	public void delete(Integer id);

	/**
	 * 根据username与userType按条件删除
	 * @param username
	 * @param userType
	 */
	public void deleteByUsernameAndUserType(String username,String userType);

	/**
	 * 根据user中的值查找满足条件的个数
	 * @param user
	 * @return
	 */
	public Integer count(User user);

	/**
	 * 根据用户名查找用户
	 */
	public User finByName(String username);
}
